package com.ruoyi.huanjing.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;

import java.io.Serializable;
import java.util.Date;

/**
 * 目录管理对象 directory_management
 * 
 * @author ruoyi
 * @date 2025-07-28
 */
@EqualsAndHashCode(callSuper = false)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DirectoryManagement implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 目录ID */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 目录名称 */
    @Excel(name = "目录名称")
    private String directoryName;

    /** 父菜单ID */
    @Excel(name = "父菜单ID")
    private Long parentId;

    /** 显示顺序 */
    @Excel(name = "显示顺序")
    private Long orderNum;

    /** 路径 */
    @Excel(name = "路径")
    private String path;

    /** 是否可点击 */
    @Excel(name = "是否可点击")
    private Boolean disabled;

    /** 叶子节点 */
    @Excel(name = "叶子节点")
    private Boolean isLeaf;

    /** 目录状态（0正常 1停用） */
    @Excel(name = "目录状态", readConverterExp = "0=正常,1=停用")
    private String status;
    /** 条目数 */
    @Excel(name = "条目数")
    private Integer number;
    /** 内存大小 */
    @Excel(name = "内存大小")
    private String memorySize;
    /** 数据总量 */
    @Excel(name = "数据总量")
    private Integer totalDada;
    /** 是否实测 */
    @Excel(name = "是否实测")
    private Boolean measured;
    /** 文件格式 */
    @Excel(name = "文件格式")
    private String fileType;
    /** 数据来源 */
    @Excel(name = "数据来源")
    private String dataSource;
    /** 空间范围 */
    @Excel(name = "空间范围")
    private String spacialScale;
    /** 时间范围 */
    @Excel(name = "时间范围")
    private String timeScale;
    /** 空间分辨率 */
    @Excel(name = "空间分辨率")
    private String spaceResolution;
    /** 时间分辨率 */
    @Excel(name = "时间分辨率")
    private String timeResolution;

    /** 内容 */
    @Excel(name = "内容")
    private String content;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("directoryName", getDirectoryName())
            .append("parentId", getParentId())
            .append("orderNum", getOrderNum())
            .append("path", getPath())
            .append("disabled", getDisabled())
            .append("isLeaf", getIsLeaf())
            .append("status", getStatus())
            .append("content", getContent())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
